/**
 * Iniciação Científica - SAE-CNPQ - 2013/2013
 * autor: Agnaldo A Esmael
 * Orientadores: Prof. Dr Ricardo Torres e Dr. Jefersson A Santos
 */
package view;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JMenuBar;
import javax.swing.JRadioButton;
import javax.swing.JSlider;
import javax.swing.JToolBar;
import control.EventosGUI;
import control.TrataEventosPrincipal;

/**
 * @author agnaldo
 *
 */
public class ToolBarInteractive extends JToolBar implements ActionListener{

	/**
	 * 
	 */
	private JButton fim, refinar, send;
	private JLabel labelZoom, labelMais;
	private JRadioButton cafe, nonCafe;
	private JSlider zoomSlider;
	EventosGUI trataEventos;

	public ToolBarInteractive(EventosGUI tEvt) {
		
		trataEventos = tEvt;
		
		fim = new JButton("Finalize"); // instanciando compomentes Swings
		refinar = new JButton("Refine");
		cafe = new JRadioButton("Coffee");
		cafe.setSelected(true);
		nonCafe = new JRadioButton("Non-Coffee");
		send = new JButton("Send");
		labelZoom = new JLabel("Zoom   -");
		labelMais = new JLabel("+");
		zoomSlider = new JSlider(JSlider.HORIZONTAL,10, 300, 100); // tipo horizontal, valor min, max, inicial

		this.add(fim); // adicionando compomentes na Barra de Menus
		this.add(refinar);
		this.add(cafe);
		this.add(nonCafe);
		this.add(send);
		this.add(labelZoom);
		this.add(zoomSlider);
		this.add(labelMais);
		
		fim.addActionListener(this);
		refinar.addActionListener(this);
		send.addActionListener(this);
		cafe.addActionListener(this);
		nonCafe.addActionListener(this);
		
		final ButtonGroup grupo = new ButtonGroup();//garante q apenas um dos botões Radio é selecionado
		grupo.add(cafe); // se este botão for selecionado, deselecionar o outro
		grupo.add(nonCafe);
		
		ativaBotoes(false);	
	}

	@Override
	public void actionPerformed(ActionEvent eventos) {
		
		if (eventos.getSource().equals(refinar)) {
			trataEventos.newUserAnotation();
			ativaBotoes(true);
		}
		else if (eventos.getSource().equals(fim)) {
			System.out.println("Cliente achou esta classificação boa");
			trataEventos.finishClassification();
			}
		else if (eventos.getSource().equals(send)) {
			trataEventos.nextIteraction();
			ativaBotoes(false);
			}
		else if (eventos.getSource().equals(cafe))
			trataEventos.setColorClass(Color.BLACK, 0);
		
		else if (eventos.getSource().equals(nonCafe))
			trataEventos.setColorClass(Color.GREEN, 1);
		
	}//fim actionPerformed
	
	
	private void ativaBotoes(boolean opcao) {
		fim.setEnabled(!opcao);
		refinar.setEnabled(!opcao);
		cafe.setEnabled(opcao);
		nonCafe.setEnabled(opcao);
		send.setEnabled(opcao);
	}

}
